package cn.hloger.spider.demo.dataxDemo.verify;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;

/**
 * 通用工具类.
 *
 * @author Ken.Zheng
 */
public class ValidateUtils {

    private ValidateUtils() {
        //私有构造，避免实例化
    }

    /**
     * 子任务id正则匹配全为数字
     */
    public static Pattern zrwIdPattern = Pattern.compile("[\\d]+");

    /**
     * 批次号正则匹配为字母和数字组合
     */
    public static Pattern pchPattern = Pattern.compile("[A-Za-z0-9]+");

    /**
     * 获取命令行列表.
     *
     * @param cmd 命令 组装成sh -c cmd 命令
     * @return 返回命令列表.
     */
    public static List<String> getCmdList(String cmd) {
        List<String> cmds = new ArrayList<>(Constants.DEFAULT_COLLECTION_SIZE);
        cmds.add("sh");
        cmds.add("-c");
        cmds.add(cmd);
        return cmds;
    }

    /**
     * 对子任务id进行正则校验
     *
     * @param zrwId 子任务id
     * @return 全为数字返回true，否则返回false
     */
    public static boolean verifyZrwId(String zrwId) {
        return zrwIdPattern.matcher(zrwId).matches();
    }

    /**
     * 对批次号进行正则校验
     *
     * @param pch 批次号
     * @return 字母数字组成返回true，否则返回false
     */
    public static boolean verifyPch(String pch) {
        return pchPattern.matcher(pch).matches();
    }

}
